package com;

import java.awt.BorderLayout;
import javax.swing.JFrame;

/**
 * Diseño de una ventana para el juego 
 *
 * @author Alex Muñoz   -   Mauricio Orellana.
 * @version 2012-07-13
 */
public class Window extends JFrame
{
    private ArenaDeJuego arena;
    private MenuBar navBar;
 
    /**
     * Constructor de objetos de la clase Window, con una arena de juego de 2 x 2.
     */
    public Window()
    {
        this(new ArenaDeJuego(2));
    }
    
    /**
     * Constructor de objetos de la clase Window
     * 
     * @param d Arena de juego con la que se crea la ventana.
     */
    public Window(ArenaDeJuego d)
    {
        super(CommandNames.APP_NAME);
        super.setSize(600,400);
        super.setIconImage(Icons.LOGO.getImg());
        super.setLayout(new BorderLayout()); 
        this.navBar = new MenuBar(this);
        super.setJMenuBar(navBar);
        this.arena = d;
        super.add(this.arena);
        super.setLocationRelativeTo(null);
        super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }

    /**
     * Retorna la barra de menú.
     * 
     * @return Retorna la barra de menú.
     */
    public MenuBar getNavBar() {
        return this.navBar;
    }

    /**
     * Modifica la barra de menú.
     * 
     * @param navBar La nueva barra de menú. 
     */
    public void setNavBar(MenuBar navBar) {
        this.navBar = navBar;
    }
    
    /**
     * Modifica la arena de juego.
     * 
     * @param adg La nueva arena de juego. 
     */
    public void setArena(ArenaDeJuego adg)
    {
        this.arena = adg;
    }

    /**
     * Retorna la arena de juego.
     * 
     * @return Rectorna la actual arena de juego. 
     */
    public ArenaDeJuego getArena() {
        return this.arena;
    }
    
    
}
